;SIZE 11 ;VSP 6 ;TOPMAR 0 ;BOTMAR 0 ;LFTMAR 0 ;SKIP 1 ;KSET FONTS;25FR3 KST,,,,,,,,, MC:KMP;TJ6 27  pLIBLSP: LISP PROGRAM LIBRARY  p  p  p*** HOW TO CONTRIBUTE ***    pFirst prepare a file with the source code, and write a short info text  pabout how to use the program. If the info text is short, include it at the  pbeginning of the program file as comments; otherwise make a separate file  pof it. Each file should include your name or other identification at the  pbeginning. LISP code should be appropriately ground; MIDAS code should be  preadable.  pThen put the program file in the library. If your name is YOU and the  pfile's name is FOO, copy the source file to LIBDOC; FOO YOU1. The info  pfile, if any, is likewise filed as LIBDOC;FOO INFO. The FASL file should  pbe put on LIBLSP;FOO FASL. (That directory is LIBLSP, not LIBDOC!) Unless  pthe file is specific to a single machine (such as TV packages on AI), copy  pthese files to the other two machines in the set {AI,MC,ML}. The INSTALL  pprogram may be helpful for this purpose; on AI you would say:  p:INSTALL LIBDOC;FOO YOU1MC,ML  p:INSTALL LIBDOC;FOO INFOMC,ML  p:INSTALL LIBLSP;FOO FASLMC,ML  pwhere =altmode and "MC,ML" is the other machines to install on. You may  pwish to put the program in the catalog; edit the file LIBDOC;^DOC^ TJABLE,  pputting your program in the alphabetical catalog at the end, and then say:  p:XFILE LIBDOC;UPDATE  pwhich will run TJ6 in appropriate ways. Finally, you should announce your  ppackage to the world. Say:  p:MAIL *AI,*MC,*ML  p(or whatever set of machines you installed the program on), and the MAIL  pprogram will help you along.  pNow if your program is what people need, they will try to use it. If the  pinfo text is not completely exhaustive, or if there is even bugs in the  pprogram, then they might come and ask you questions. You can stop that, if  pyou wish, by putting a disclaimer in the info file or among the info  pcomments, saying that you are happy to give away the program, but that you  pdo not have time to answer questions. On the other hand, if you do want  pfeedback, it is worthwhile to include a statement to that effect, since it  pmakes it more attractive to use the program.  pIf you come up with new and improved versions of the program, they should  pbe called FOO YOU2, FOO YOU3, etc. Do not contribute new versions too  poften, since that will just confuse the users.  @PAGE 2  pTo save disk space, users should not get private copies of library files  punless they want to change the program. Therefore, they must be able to  prely on FOO YOUn staying the same, so please do NOT put the revised program  punder the old name. (The only exception is if you have just modified the  pcomments).  @PAGE 3  p*** HOW TO USE ***  p  pAt the end of this file is a list of programs that are presently in the  plibrary, with a very short explanatory text. Look around and explore.  pIf you arrange to load LISP library files using your LISP INIT file or a  psimilar mechanism, I suggest that you refer to them by exact name rather  pthan by >. That way you will not suffer when a new and improved version of  pthe program appears.  pThe file LIBDOC; AUTODF > contains autoload definitions of many functions  pin the library. If you use library files frequently, it might be worthwhile  pto load AUTODF from your LISP init file.  @PAGE 4  p*** PRESENT CONTENTS ***  p  pFile  pname Donor Purpose of program  p  p"MACRO DDM Defines " as macro character so that  strings of arbitrary characters may  be read to LISP, and ground without being smashed  into all uppercase characters.  p  p#PRINT RCW General Purpose Pretty Printer.  p  p%PRINT GROSS Print circular list structures  in readable format  p  p%READ GROSS Read output produced by %PRINT  p  p-> GROSS General-purpose "smash" macro: see the  file LIBDOC;-> GROSS1 for further details  p  p6BIT JONL Functions for converting between lisp symbols and  sixbit and/or ascii representations.  p  pAPROPO JONL Searches Obarray for atoms including its arg in name  p  pARBVAR JAN An experimental implementation of a generalized  variable facility for LISP. See the beginning  of LIBDOC;ARBVAR JAN1 for details.  p  pARITH CFFK Functions for *$ //$ and scaling for use with  compiled code.  p  pARYADR JONL Functions to get Channel-numbers/JFNs etc from File  arrays, and to get actual address of array elements.  p  pARYFIL JONL (OPEN-FILES) gets a list of all currently open files;  LIVE-ARRAYS lists all non-dead arrays of given type.  p  pASKUSR PSZ INTERLISP-like command-completion multiple choice user  interface.  p  pATAN JLK FORTRAN-like ATAN  p  pBBOOLE BAKER Random Boolean functions (see BBOOLE INFO ; Booleans  expressed as BIGNUMs).  p  pBINPRT KMP Printer to display numbers (at toplevel or embedded in  expressions) in octal nnnnnn,,nnnnnn format.  p  pBS JONL - DEBUGGING AID, FOR LOOKING BACK UP THE STACK.  @PAGE 5  and two 'timer' functions.  p  pBSSQ GLS/GJS "Pull to front" ASSQ  p  pCARCDR KMP Arbitrarily long C{A|D}*R macros.  p  pDEBUG TLP Debugging functions for examining stack  p  pDEBUG* RCW Claimed improvement on DEBUG (compatible).  p  pDESC Lisp on-line manual reader.  p  pDIDL DCH Display-oriented debugger for LISP.  p  pDIREAD ERIK Function for reading from a choice of  several directories  p  pDOCTOR JONL Weizenbaum's famous ELIZA/DOCTOR Rogerian  phychotherapist.  p  pDOW JONL Calculation of the Day-Of-Week, given the year [as an  ordinal of the common era], month [number from 1 to 12.],  and day [number of day within month].  p  pDRIBBL RBR To dribble out to wallpaper files.  p  pEDIT MOON Lisp Editor  p  pERT DDM Break package written in LISP  p  pFASDMP RLB a set of Lisp functions to dump, in FASL format,  s-expressions to be eval'ed at FASLOAD time.  p  pFASLRE RLB a package of functions for reading s-expressions and  other information from a FASL file (see also FASDMP).  p  pFFORMA JONL FORTRAN-style number formatter for output.  p  pFFT BWOOD Fast Fourier transform.  p  pFILE+ ERIK Adding "one-more-function" to a LISP source file: See  LIBDOC;FILE+ ERIK1 for details  p  pFLOAD JLK Loads FASL+source files, using EXPR-HASH to use only  changed source definitions (extracted from LEDIT*).  p  pFONTRD BAKER Lisp functions for hacking fonts in KST format.  p  pFONZ SJOBRG permits displaying of characters in arbitrary fonts on  the Knight tv's.  @PAGE 6  p  pFOR PSZ INTERLISP-like iteration form package  p  pFUNVAL ERIK Simulates FUNARG-expressions (function closures)  p  pFWMAKE KEN Creates TV-turtle type windows of any font reading the  AST format  p  pFWUSE KEN Uses the TV windows of fonts created by FWMAKE,  allowing you to print on a TV in whatever font you want  (blown up 3 times though)  p  pGC&VAR RLW Handy handlers for gc-overflow and  unbound-var errors  p  pGCDEMN BAKER Adaptive space allocator GC daemon.  p  pGENCMP JAN A generalized n-way comparison generator for lists.  See the beginning of LIBDOC;GENCMP JAN1.  p  pGETSYN RLB GETSYNTAX--gets syntax info from readtable  p  pHUMBLE GLS HUMBLE inferior package for ITS NEWIO MACLISP  p  pIOTA KMP Clean LAMBDA-bound I/O functions (leave no mess).  p  pITER RMS a generalized iteration construct based on the use of  input and output streams.  p  pLAUGH GSB Utters some variety of chortle.  p  pLINK GLS LINK function for ITS NEWIO MACLISP  p  pLISPM KMP Compatibility stuff for LispM.  p  pLFTV MARR Function for transforming LISP picture  arrays into FTV (i.e., FakeTV) format  p  pLDDT JLK Inferior job hacking primitives  p  pLISPT JLK Teco communication from Lisp; see LISPT INFO  p  pLOG ERIK Saves a log of the interaction on the screen on a file  (probably obsolete--see DRIBBL)  p  pLUSETS support file for LDDT and LISPT  p  pMATCH FININ A fast and short implementation of a neat pattern  matcher in use for years by the MIT A. I. Vision Group  (e.g., FININ, TLP, MRD, PHW, etc.).  @PAGE 7  p  pMODE MRG "Data Macro" defining package; see MODE INFO  p  pMORE KMP A fancy --More-- handler which does --n Second Pause--  Great for your COMPLR init so you don't come back an hour  later to find it hanging in a more break.  p  pMUDD DVM A package of functions for duplicating the operation  of MUDDLE property hackers  p  pNAME MILLER Generate truly unique names.  p  pNDONE RVB Issues message when COMPLR is done.  p  pNSHARE GSB Functions for creating heirachical MACLISP dumps on  ITS.  p  pOCTAL KMP Useful octal reader. Sets up "&" readmacro so that, for  example, things like &-1,,3 read as bits 777777,,000003.  p  pPHASE GLS MOONPHASE function  p  pPHSPRT GLS Timestamp printers  p  pPMMAP JONL Memory Map printing functions  p  pPPAK JAN A packet of functions for automatically  keeping the values of an interdependent set of  variables consistent with one another.  p  pPPRINT DVM A small, fast, and data driven pretty-printer.  p  pPRFONT ERIK Support printing in fonts (prints out  appropriate ~f's, sets up NNTJ6 commands,  and calls NNTJ6 to prepare for XGP)  p  pPRIME PRATT Rabin's algorithm for testing primes. Effective  for up to 1000-bit numbers. (Use alloc carefully  with numbers that big though. No problem at 100 bits.)  p  pPRIVOB JONL Hacking private obarrays  p  pPRLISP JAN Waterman's Production Rule Schema for  MACLISP  p  pPROP! ERIK Storage and access from nested  property-lists  p  pQTRACE KMP Functions for tracing/breaking in a query-mode  p  @PAGE 8  pREDO RMS See LIBDOC;REDO INFO.  p  pSAVE KMP Lisp environment SAVE/UNSAVE operations.  p  pSCHEME GJS Extended Lambda Calculus Interpreter.  Access it by doing ":lisp scheme" at DDT.  p  pSDUMP FORBUS A function which dumps the property  lists of specified atoms to a disk file, UREADable.  p  pSELECT ERIK Macro definition for simulating  BBN-LISP function SELECTQ  p  pSET IRA Functions for manipulating sets, e.g. union,  intersection, etc.  p  pSETS PRATT Like SET, but works with bit vectors a la Pascal.  Bignums Ok.  p  pSHARE JONL Shares pure pages among PDUMP'd LISPs. See also NSHARE.  p  pSMURF DDM Debugging aid for seeing context of read-time errors  when reading a file  p  pSPLIT RICH Split screen package  p  pSTATTY PSZ Functions for manipulating the TTY status  p  pSTEP RICH LISP stepping package  (debugging aid)  p  pSTEPMM MM Another stepping package  p  pSTEPR RVB Another stepping package  p  pSTRING PSZ ITS MACLISP string handling functions  p  pSUBLOA ERIK Enables one file to read another and then continue on  itself (recursively if desired)  [now obsolete]  p  pSUN BKPH Program to calculate sun-elevation and sun-azimuth.  p  pTIME KMP LispM compatible time utility functions.  p  pTIMER RWK A useful tool in making performance measurements.  [See also the package BS JONL for simple timings]  p  pTRAP KMP Small but useful debugging functions. One that waits for  a given value to be created by interpreted code. One that  @PAGE 9  sets up a useful mar interrupt handler on symbols.  p  pTTY KMP Functions for turning on/off input character echo.  p  pTTYHAK GJC Non-hairy function for opening a "very raw" tty.  p  pTTYVAR GSB Functions to manipulate TTY variables.  p  pTV2R KEN for reading from the tv to make a R-insertable file,  and also for processing it in R (TV2R >, and  TV2R R2XGP, respectively)  p  pWINDOW RIEGER display window package